home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / lang / Runtime.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.0 KB  |  157 lines

  1. package java.lang;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.util.StringTokenizer;
  7.  
  8. public class Runtime {
  9.    private static Runtime currentRuntime = new Runtime();
  10.    private String[] paths;
  11.  
  12.    public static Runtime getRuntime() {
  13.       return currentRuntime;
  14.    }
  15.  
  16.    private Runtime() {
  17.    }
  18.  
  19.    private native void exitInternal(int var1);
  20.  
  21.    public void exit(int var1) {
  22.       System.getSecurityManager().checkExit(var1);
  23.       this.exitInternal(var1);
  24.    }
  25.  
  26.    public static void runFinalizersOnExit(boolean var0) {
  27.       SecurityManager var1 = System.getSecurityManager();
  28.       if (var1 != null) {
  29.          try {
  30.             var1.checkExit(0);
  31.          } catch (SecurityException var2) {
  32.             throw new SecurityException("runFinalizersOnExit");
  33.          }
  34.       }
  35.  
  36.       runFinalizersOnExit0(var0);
  37.    }
  38.  
  39.    private static native void runFinalizersOnExit0(boolean var0);
  40.  
  41.    private native Process execInternal(String[] var1, String[] var2) throws IOException;
  42.  
  43.    public Process exec(String var1) throws IOException {
  44.       return this.exec((String)var1, (String[])null);
  45.    }
  46.  
  47.    public Process exec(String var1, String[] var2) throws IOException {
  48.       int var3 = 0;
  49.       StringTokenizer var5 = new StringTokenizer(var1);
  50.       var3 = var5.countTokens();
  51.       String[] var4 = new String[var3];
  52.       var5 = new StringTokenizer(var1);
  53.  
  54.       for(int var7 = 0; var5.hasMoreTokens(); var4[var7++] = var5.nextToken()) {
  55.       }
  56.  
  57.       System.getSecurityManager().checkExec(var4[0]);
  58.       return this.execInternal(var4, var2);
  59.    }
  60.  
  61.    public Process exec(String[] var1) throws IOException {
  62.       return this.exec((String[])var1, (String[])null);
  63.    }
  64.  
  65.    public Process exec(String[] var1, String[] var2) throws IOException {
  66.       System.getSecurityManager().checkExec(var1[0]);
  67.       return this.execInternal(var1, var2);
  68.    }
  69.  
  70.    public native long freeMemory();
  71.  
  72.    public native long totalMemory();
  73.  
  74.    public native void gc();
  75.  
  76.    public native void runFinalization();
  77.  
  78.    public native void traceInstructions(boolean var1);
  79.  
  80.    public native void traceMethodCalls(boolean var1);
  81.  
  82.    private synchronized native String initializeLinkerInternal();
  83.  
  84.    private native String buildLibName(String var1, String var2);
  85.  
  86.    private native int loadFileInternal(String var1);
  87.  
  88.    private void initializeLinker() {
  89.       String var1 = this.initializeLinkerInternal();
  90.       char var2 = System.getProperty("path.separator").charAt(0);
  91.       int var3 = var1.length();
  92.       int var4 = var1.indexOf(var2);
  93.  
  94.       int var6;
  95.       for(var6 = 0; var4 >= 0; var4 = var1.indexOf(var2, var4 + 1)) {
  96.          ++var6;
  97.       }
  98.  
  99.       this.paths = new String[var6 + 1];
  100.       var4 = 0;
  101.       var6 = 0;
  102.  
  103.       for(int var5 = var1.indexOf(var2); var5 >= 0; var5 = var1.indexOf(var2, var4)) {
  104.          if (var5 - var4 > 0) {
  105.             this.paths[var6++] = var1.substring(var4, var5);
  106.          } else if (var5 - var4 == 0) {
  107.             this.paths[var6++] = ".";
  108.          } else if (var5 - var4 == 0) {
  109.             this.paths[var6++] = ".";
  110.          }
  111.  
  112.          var4 = var5 + 1;
  113.       }
  114.  
  115.       this.paths[var6] = var1.substring(var4, var3);
  116.    }
  117.  
  118.    public synchronized void load(String var1) {
  119.       System.getSecurityManager().checkLink(var1);
  120.       int var2 = this.loadFileInternal(var1);
  121.       if (var2 == -1) {
  122.          throw new OutOfMemoryError();
  123.       } else if (var2 == 0) {
  124.          throw new UnsatisfiedLinkError(var1);
  125.       }
  126.    }
  127.  
  128.    public synchronized void loadLibrary(String var1) {
  129.       System.getSecurityManager().checkLink(var1);
  130.       if (this.paths == null) {
  131.          this.initializeLinker();
  132.       }
  133.  
  134.       for(int var2 = 0; var2 < this.paths.length; ++var2) {
  135.          String var4 = this.buildLibName(this.paths[var2], var1);
  136.          int var3 = this.loadFileInternal(var4);
  137.          if (var3 == -1) {
  138.             throw new OutOfMemoryError();
  139.          }
  140.  
  141.          if (var3 == 1) {
  142.             return;
  143.          }
  144.       }
  145.  
  146.       throw new UnsatisfiedLinkError("no " + var1 + " in shared library path");
  147.    }
  148.  
  149.    public InputStream getLocalizedInputStream(InputStream var1) {
  150.       return var1;
  151.    }
  152.  
  153.    public OutputStream getLocalizedOutputStream(OutputStream var1) {
  154.       return var1;
  155.    }
  156. }
  157.